<?php

/**
 * Description of areaequipa
 *
 * @author Leonardo Lino
 */
class Areaequipa extends CI_Controller {

    private $smarty;

    public function __construct() {
        parent::__construct();
        require_once 'smartyLoader.php';
        $this->smarty = $smarty;
        $this->load->model('problemaModel');
        if (!$this->user->isValidUser()) $this->notValido ();
    }
    
    
    public function index() {
        $this->load->model('equipaModel');

        $utilizador = $this->session->all_userdata();
        $uid = $utilizador['uid'];
        $equipa = $this->equipaModel->getEquipaFromUid($uid);
        $this->formatDadosPrivados($equipa);
        $this->formatDadosPublicos($equipa);

        $this->smarty->assign("templateActivo", "areaequipa.tpl.html");
        $this->boot();
    }

    private function notValido(){
        echo 'nao e valido';
        exit();
    }

    
    private function formatDadosPublicos($equipa) {
        $this->smarty->assign("equipa", $equipa->equipa);
        $this->smarty->assign("escola", $equipa->escola);
        $this->smarty->assign("localidade", $equipa->localidade);
        $this->smarty->assign("codpostal", $equipa->codpostal);
        $this->smarty->assign("professor", $equipa->professor);
        $this->smarty->assign("elementos", $equipa->elementos);
        $this->smarty->assign("avatar_url", $equipa->avatar_url);
    }

    private function formatDadosPrivados($equipa) {
        $this->smarty->assign("morada", $equipa->morada);
        $this->smarty->assign("email", $equipa->email);
        $this->smarty->assign("telefone", $equipa->telefone);
    }

    public function modificar() {
        $this->load->model('equipaModel');
        $utilizador = $this->session->all_userdata();
        $uid = $utilizador['uid'];
        $equipa = $this->equipaModel->getEquipaFromUid($uid);
        
        $this->smarty->assign("vid", $equipa->id);
        $this->formatDadosPrivados($equipa);
        $this->formatDadosPublicos($equipa);

        $this->smarty->assign("templateActivo", "areaequipa_modificar.tpl.html");
        $this->boot();
    }
    
    public function processModificar(){
        $this->load->model('equipaModel');
        
        $resultado = $this->equipaModel->update($_POST['equipa'], $_POST['email'], $_POST['escola'], 
                $_POST['morada'], $_POST['localidade'],$_POST['codpostal'], $_POST['professor'], 
                $_POST['telefone'], $_POST['elementos'], $_POST['vid']);
        
        
         $utilizador = $this->session->all_userdata();
        $uid = $utilizador['uid'];
        $equipa = $this->equipaModel->getEquipaFromUid($uid);
        $this->formatDadosPrivados($equipa);
        $this->formatDadosPublicos($equipa);
        
        $this->smarty->assign("templateActivo", "areaequipa.tpl.html");
        $this->boot();
        
    }

    private function setAssigns() {
        if ($this->user->isAdmin()) {
            $this->smarty->assign("isAdmin", 1);
        } else {
            $this->smarty->assign("isAdmin", 0);
        }

        if ($this->user->isValidUser()) {
            $this->smarty->assign("isValidUser", 1);
        } else {
            $this->smarty->assign("isValidUser", 0);
        }


        $utilizador = $this->session->all_userdata();
        if (isset($utilizador['utilizador'])) {
            $user = $utilizador['utilizador'];
        } else {
            $user = '';
        }
        $this->smarty->assign("nomeAdmin", $user);
    }

    private function boot() {
        $problemas = $this->problemaModel->loadAll();
        $this->smarty->assign("problemas", $problemas);

        $this->setAssigns();
        $css = array("css/cssmenu.css");
        $this->smarty->assign("cssFileList", $css);

        $this->smarty->display('header.tpl.html');
        $this->smarty->display('main.tpl.html');
        $this->smarty->display('footer.tpl.html');
    }

    public function problema($id) {

        $problema = $this->problemaModel->loadFromId($id);

        $this->smarty->assign("problema_titulo", $problema->titulo);
        $this->smarty->assign("problema_problema", $problema->problema);
        $this->smarty->assign("problema_id", $problema->id);


        $this->smarty->assign("templateActivo", "areaequipa_problema.tpl.html");
        $this->boot();
    }

    public function responder($id) {
        $this->load->model('respostaModel');
        $problema = $this->problemaModel->loadFromId($id);
        $this->smarty->assign("problema_id", $problema->id);
        
        if ($this->respostaModel->jaRespondeuPergunta($problema->id)){
            $this->smarty->assign("jarespondeu", 'ok');
            $resposta = $this->respostaModel->loadFromId_problema($problema->id);
            
            $this->smarty->assign("resposta_resposta", $resposta->resposta);
        }
        

        $this->smarty->assign("templateActivo", "areaequipa_responder.tpl.html");
        $this->boot();
    }

    public function processResposta() {
        $this->load->model('respostaModel');
        $this->load->model('equipaModel');


        $ses = $this->session->all_userdata();
        $uid = $ses['uid'];
        $equipa = $this->equipaModel->getEquipaFromUid($uid);
        
        $this->formatDadosPrivados($equipa);
        $this->formatDadosPublicos($equipa);
        
        $this->respostaModel->novo($_POST['vid'], $equipa->id, $_POST['resposta']);

        $this->smarty->assign("templateActivo", "areaequipa.tpl.html");
        $this->boot();
    }

    public function classificacao_problema() {
        $this->load->model('respostaModel');
        $utilizador = $this->session->all_userdata();
        $uid = $utilizador['uid'];
        $respostas = $this->respostaModel->loadAllEquipa($uid);

        $this->smarty->assign("respostas", $respostas);
        $this->smarty->assign("templateActivo", "areaequipa_classificacao_problema.tpl.html");
        $this->boot();
    }

    public function ultimos() {
        $this->load->model('equipaModel');
        $equipas = $this->equipaModel->lastRegistados(3);

        $this->smarty->assign("equipas", $equipas);
        $this->smarty->assign("templateActivo", "areaequipa_ultimos.tpl.html");
        $this->boot();
    }

    public function todas() {
        $this->load->model('equipaModel');
        $equipas = $this->equipaModel->loadAll();

        $this->smarty->assign("equipas", $equipas);
        $this->smarty->assign("templateActivo", "areaequipa_ultimos.tpl.html");
        $this->boot();
    }

}

?>
